function ExpectTrueTest() {

	ExpectTrueTest.prototype = new TestCase();
	TestCase.call( this, 'ExpectTrueTest' );
	
	this.test_evaluateReturnsTrueIfActualIsTrue = function() {
		var expect = new ExpectTrue( true );
		this.assertTrue( expect.evaluate() );
	}
	
	this.test_evaluateReturnsFalseIfActualIsFalse = function() {
		var expect = new ExpectTrue( false );
		this.assertTrue( ! expect.evaluate() );
	}
	
	this.test_evaluateDoesNotCastTheActualIntoBooleanAndSoReturnsFalseForEverythingExceptTrue = function() {
		var expect = new ExpectTrue( 1 );
		this.assertTrue( ! expect.evaluate(), '1' );
	
		var expect = new ExpectTrue( 'true' );
		this.assertTrue( ! expect.evaluate(), 'true' );
	
		var expect = new ExpectTrue( '1' );
		this.assertTrue( ! expect.evaluate(), '(string)1' );
	}
}






function ExpectFalseTest() {

	ExpectFalseTest.prototype = new TestCase();
	TestCase.call( this, 'ExpectFalseTest' );
	
	this.test_evaluateReturnsFalseIfActualIsTrue = function() {
		var expect = new ExpectFalse( true );
		this.assertTrue( ! expect.evaluate() );
	}
	
	this.test_evaluateReturnsTrueIfActualIsFalse = function() {
		var expect = new ExpectFalse( false );
		this.assertTrue( expect.evaluate() );
	}
	
	this.test_evaluateDoesNotCastTheActualIntoBooleanAndSoReturnsFalseForEverythingExceptFalse = function() {
		var expect = new ExpectFalse( 0 );
		this.assertTrue( ! expect.evaluate(), '0' );
	
		var expect = new ExpectFalse( '' );
		this.assertTrue( ! expect.evaluate(), 'empty string' );
	
		var expect = new ExpectFalse( null );
		this.assertTrue( ! expect.evaluate(), 'null' );
	}
}